package com.lanou3g.springboot_demo.dao;

import com.lanou3g.springboot_demo.bean.Message;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;

import javax.transaction.Transactional;
import java.util.List;

public interface MessageDao extends JpaRepository<Message, Integer> {

	/**
	 * 按status字段查询
	 * @param status
	 * @return
	 */
	List<Message> findMessageByStatus(Integer status);

	// 如果是自定义SQL查询，注意：这里写的其实不是标准SQL， 而是JPQL
	@Query("select m from Message m")
	List<Message> findMessage();

	// @Transactional注解必须加到update、save、delete这些修改数据操作上（否则会报没有可用事务异常）
	@Transactional

	// 下面这俩注解是一组，适合于自定义SQL语句时配合使用
	@Query("delete from Message where id = ?1")
	@Modifying //如果语句是要修改数据库必须添加@Modifying注解
	void deleteById(Integer id);

}
